﻿using System;
using System.DirectoryServices;
using Librerias;
using Aplicacion.lib;
using System.Reflection;

namespace Aplicacion.admin.usuarios
{



    ///<summary>
    /// Agrega un usuario
    ///</summary>
    public partial class Agregar : System.Web.UI.Page
    {
        private ObjetoAd oad = new ObjetoAd();
        private ObjetoAd ddee = new ObjetoAd();
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void BtnSubmitFormClick(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    ddee = oad.NuevoHijo("CN=" + txtNuevoNombre.Text.ToUpper() + " " + txtNuevoApellido.Text.ToUpper() + "," + Configuracion.Get("ad_ou_users"), "user");
                    ddee.SamAccountName = ddee.Uid = ddee.UserPrincipalName = ddee.Mail = txtNuevoUsuario.Text;
                    ddee.Nombre = txtNuevoNombre.Text;
                    ddee.DisplayName = txtNuevoNombre.Text + " " + txtNuevoApellido.Text;
                    ddee.Apellido = txtNuevoApellido.Text;
                    ddee.UserPassword = txtNuevoPassword.Text;
                    ddee.DNI = txtDNI.Text;
                    ddee.UserFlags = ObjetoAd.NormalAccount + ObjetoAd.DontExpirePassword;
                    ddee.Guardar();
                    //ddee.DirectoryEntry.Close();

                    Notificaciones.Flash("Usuario dada de alta correctamente.", Notificaciones.CssCorrecto);
                    Response.Redirect("~/admin");
                }
                catch (TargetInvocationException ex)
                {
                    Notificaciones.Flash(ex.InnerException.Message, Notificaciones.CssError);
                }
                catch (DirectoryServicesCOMException ex)
                {
                    Notificaciones.Flash(ex.Message, Notificaciones.CssError);
                }

            }
        }
    }
}